package main

import "fmt"

type Humaner1 interface { // 子集
	live()
}
type Person1 interface { // 超集
	Humaner1 // 匿名字段，继承了Humaner1
	sing(lrc string)
}

type Student1 struct {
	name string
	id   int
}

func (tmp *Student1) live() {
	fmt.Printf("Student===live [%s, %d ] say hi \n", tmp.name, tmp.id)
}

func (tmp *Student1) sing(lrc string) {
	fmt.Printf("Student====sing [%s, %d ] say hi %s \n", tmp.name, tmp.id, lrc)
}

func main() {
	var i Person1 = &Student1{"徐冬成", 1}
	i.live()
	i.sing("我和我的祖国")

}
